<?php

namespace DesignNew\Template;

/**
 * 模板方法
 * 程序示例
 * 假如我们有一个构建工具，可以帮助我们测试，构建并生成构建报告（即代码覆盖报告，linting报告等），
 * 并将应用程序部署到测试服务器上。
 * 首先是用于确定构建算法框架的基类
 */
abstract class Builder
{
    final public function build()
    {
        $this->test();
        $this->lint();
        $this->assemble();
        $this->deploy();
    }

    abstract public function test();
    abstract public function lint();
    abstract public function assemble();
    abstract public function deploy();
}